package roosterparser;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Cursus {
	private Calendar startDatum;
	private Calendar eindDatum;
	private String cursuscode;
	private String lesvorm;
	private String[] docenten;
	private String lokaal;
	private String opmerkingen;
	
	public Cursus(HashMap<String, String> cursusData, Calendar weekStart) {
		weekStart.set(Calendar.DAY_OF_WEEK, NLDagNaarCalendarDag.getDagWaarde(cursusData.get("dag")));
		startDatum = weekStart;
		
		String[] startTijd = cursusData.get("van").split(":");
		String[] eindTijd = cursusData.get("tot").split(":");
				
		startDatum.set(Calendar.HOUR_OF_DAY, Integer.parseInt(startTijd[0]));
		startDatum.set(Calendar.MINUTE, Integer.parseInt(startTijd[1]));
		
		eindDatum = (Calendar)startDatum.clone();
		eindDatum.set(Calendar.HOUR_OF_DAY, Integer.parseInt(eindTijd[0]));
		eindDatum.set(Calendar.MINUTE, Integer.parseInt(eindTijd[1]));
		
		lokaal = cursusData.get("lokaal");
		lesvorm = cursusData.get("lesvorm");
		setDocenten(cursusData.get("docent"));
		cursuscode = cursusData.get("cursuscode");
		opmerkingen = cursusData.get("opmerkingen");
	}
	
	public void setDocenten(String input) {
		docenten = input.split(" (?=[^\\s]+,)");
		
		// Change names from 'last, first' to 'first last'
		for (int i=0 ; i < docenten.length ; i++) {
			String[] tmp = docenten[i].split(", ");
			if (tmp.length < 2) {
				docenten[i]	= " ";
			} else {
				docenten[i] = tmp[1] + " " + tmp[0];
			}
		}
	}
	
	public Calendar getStartDatum() {
		return startDatum;
	}

	public Calendar getEindDatum() {
		return eindDatum;
	}
	
	public String getCursuscode() {
		return cursuscode;
	}

	public String getLesvorm() {
		return lesvorm;
	}

	public String[] getDocenten() {
		return docenten;
	}

	public String getLokaal() {
		return lokaal;
	}

	public String getOpmerkingen() {
		return opmerkingen;
	}
}
